package cn.demoncat.util.sec;

import org.springframework.security.crypto.bcrypt.BCrypt;

/**
 * BCrypt加密
 *
 * 1、不可逆加密算法，类似MD5，自带随机盐功能
 * 2、生成随机盐 29位：混入密码中，不需要单独保存
 * 3、生成密码 60位
 *
 * @author 延晓磊
 * @since 2022年07月19日
 */
public class BCryptUtil {

    /**
     * 加密
     *
     * @param text  明文
     * @return 加密结果
     *
     * @author 延晓磊
     * @since 2022年07月19日
     */
    public static String hash(String text){
        // 生成随机盐，混入并HASH签名
        return BCrypt.hashpw(text, BCrypt.gensalt());
    }

    /**
     * 校验
     *
     * @param text  明文
     * @param hashed    加密结果
     * @return  是否匹配
     *
     * @author 延晓磊
     * @since 2022年07月19日
     */
    public static boolean check(String text, String hashed){
        return BCrypt.checkpw(text, hashed);
    }

}
